home *** CD-ROM | disk | FTP | other *** search
- #! /usr/bin/env python
-
- # Python interface to the Internet finger daemon.
- #
- # Usage: finger [options] [user][@host] ...
- #
- # If no host is given, the finger daemon on the local host is contacted.
- # Options are passed uninterpreted to the finger daemon!
-
-
- import sys, string
- from socket import *
-
-
- # Hardcode the number of the finger port here.
- # It's not likely to change soon...
- #
- FINGER_PORT = 79
-
-
- # Function to do one remote finger invocation.
- # Output goes directly to stdout (although this can be changed).
- #
- def finger(host, args):
- s = socket(AF_INET, SOCK_STREAM)
- s.connect(host, FINGER_PORT)
- s.send(args + '\n')
- while 1:
- buf = s.recv(1024)
- if not buf: break
- sys.stdout.write(buf)
- sys.stdout.flush()
-
-
- # Main function: argument parsing.
- #
- def main():
- options = ''
- i = 1
- while i < len(sys.argv) and sys.argv[i][:1] == '-':
- options = options + sys.argv[i] + ' '
- i = i+1
- args = sys.argv[i:]
- if not args:
- args = ['']
- for arg in args:
- if '@' in arg:
- at = string.index(arg, '@')
- host = arg[at+1:]
- arg = arg[:at]
- else:
- host = ''
- finger(host, options + arg)
-
-
- # Call the main function.
- #
- main()
-